// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener('DOMContentLoaded', () => {
  setTimeout(() => {
    document.body.classList.add('sidenav-pinned')
    document.body.classList.add('ready')
  }, 200)
})

// 每个页面都会导入该js 统一的设置写这里即可

// 创建了toast轻提示 元素
const myToast = new bootstrap.Toast(document.querySelector('#myToast'), {
  delay: 2000,
})

function tip(msg) {
  document.querySelector('#myToast .toast-body').innerHTML = msg
  myToast.show()
}

// 在页面设置用户名字
const nameSpan = document.querySelector('.navbar-nav .d-lg-block span')
const username = localStorage.getItem('username')
// if (nameSpan) {
//   nameSpan.innerHTML = username
// }
// 使用逻辑中断
nameSpan && (nameSpan.innerHTML = username)

// 退出功能
const btnLogout = document.getElementById('logout')
// 可选链式操作符
btnLogout?.addEventListener('click', () => {
  // 删除用户信息
  localStorage.removeItem('username')
  localStorage.removeItem('token')
  // 去登录页
  window.location.assign('./login.html')
})

// 设置axios的请求基础地址
axios.defaults.baseURL = 'http://ajax-api.itheima.net'

// 添加请求拦截器
// 每次请求之前，都会执行回调函数
axios.interceptors.request.use(
  function (config) {
    // config 此次请求相关的配置信息
    // console.log('我是请求拦截器', config)
    config.headers.Authorization = localStorage.getItem('token')
    // 在发送请求之前做些什么
    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
axios.interceptors.response.use(
  function (response) {
    // console.log('我是响应拦截器', response)
    // 对响应数据做点什么
    return response.data //数据剥离
  },
  function (error) {
    if (error.response.status === 401) {
      // token 失效,删除个人信息，跳到登录页
      // 删除用户信息
      localStorage.removeItem('username')
      localStorage.removeItem('token')
      // 去登录页
      window.location.assign('./login.html')
    }
    // 对响应错误做点什么
    return Promise.reject(error)
  }
)
